var electron = require('electron'); // 最主要的electron
var app = electron.app; // 引用app
var BrowserWindow = electron.BrowserWindow; // 窗口引用\
const {ipcMain} = electron;

var mainWindow = null; // 声明要打开的主窗口

// 程序就绪时
app.whenReady().then(() => {
    // 新建主窗口
    mainWindow = new BrowserWindow({
        width: 1280,
        height: 720,
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
            enableRemoteModule: true
        },
    });

    // 引入菜单文件即可，启用菜单的代码已在内部封装
    require('./main/menu.js');

    // 主窗口加载页面文件
    mainWindow.loadFile('demo06.html');

    // 开启调试窗口
    mainWindow.webContents.openDevTools();

    // 主窗口也可以直接加载网页(调用服务化项目)
    // mainWindow.loadURL('http://localhost:3100');

    // 在主窗口嵌入窗口
    // var {BrowserView} = electron;
    // var view = new BrowserView();
    // mainWindow.setBrowserView(view);
    // view.setBounds({
    //     x: 0,
    //     y: 120,
    //     width: 1280,
    //     height: 600,
    // });
    // view.webContents.loadURL('http://localhost:3100');

    // 这里的输出会输出在idea的控制台里
    console.log('******* Appliation start success, this is main.js. *******');

    // 记得要加关闭事件，否则内存占用会越来越高
    mainWindow.on('closed', () => {
        mainWindow = null;
    });

    setTimeout(testWebContents, 1000);
});

ipcMain.on('async-msg', (event, args) => {
    setTimeout(() => {
        event.sender.send('async-reply', '这里是main.js，我用ipcMain监控了"async-msg", 现在返回async-msg');
    }, 2000);
});


function testWebContents() {
// 主进程发送消息给渲染进程的话，由于存在多个子进程，采用webContents的形式
    mainWindow.webContents.send('sendToMainWindow', '用webContents发得出去吗？');
}
